[tox]
envlist =
    py3{12,11,10,9,8}
    pypy310
    py311-min
    py38-dev
    style
    typing
    docs
skip_missing_interpreters = true

[testenv]
package = wheel
wheel_build_env = .pkg
envtmpdir = {toxworkdir}/tmp/{envname}
constrain_package_deps = true
use_frozen_constraints = true
deps =
    -r requirements/tests.txt
    min: -r requirements-skip/tests-min.txt
    dev: -r requirements-skip/tests-dev.txt
commands = pytest -v --tb=short --basetemp={envtmpdir} {posargs:tests}

[testenv:style]
deps = pre-commit
skip_install = true
commands = pre-commit run --all-files

[testenv:typing]
deps = -r requirements/typing.txt
commands = mypy

[testenv:docs]
deps = -r requirements/docs.txt
commands = sphinx-build -W -b html -d {envtmpdir}/doctrees docs {envtmpdir}/html
